Systems and methods for evaluating suitability of an article for an individual

ABSTRACT

A computer-implemented method executes instructions for receiving or retrieving image files. A first image file corresponds to both a scaling article image having one or more known dimension(s) and to a target article image submitted by a consumer or a vendor. Contours are determined for each article image to obtain one or more pixel dimension(s) for each article image. The pixel dimension(s) for the scaling article image are related to its known dimension(s) to obtain scaled pixel dimensions for the target article image. A consumer profile is generated which includes at least one of a set of curves that represent the determined contours and a set of control points, measure lines and control lines to represent the measurement of the reference article. Access to the profile facilitates creation of new articles for the consumer and/or assessment of how an article having a similarly derived profile will fit.

BACKGROUND OF THE INVENTION

Field of the Invention

Embodiments consistent with the present invention generally relate tomethods and apparatus for evaluating the suitability of one or morearticles such, for example, as articles of apparel and sporting goods,and for fulfilling orders for such articles according to the evaluation.

Description of the Related Art

An individual shopping for articles of apparel such as shirts, pants,shoes, socks, sports jackets and the like, for sporting goods such astennis rackets, bicycles, and skis, and for many other types of articleswhich must “fit” the individual, has a variety of choices and options inthe marketplace. By way of example, an individual may walk into adepartment store or specialty store and buy an article solely based onthe sizing information found on a label affixed to the article or on thepackaging in which the article is wrapped. Likewise, a person maynavigate to an internet site and follow the same general procedureoutlined above. Although online shopping is easy and convenient, theoverall quality of the fit for a particular individual can vary greatlyfrom one article to the next.

Among the factors giving rise to variations in fit for articles ofapparel having the same nominal size classification are cut selection,sizing accuracy, the manner in which one manufacturer attaches thediscrete components of an article compared to that employed by another,and other factors. As such, even if a consumer is fortunate enough onone occasion to select an “off the rack” article which fits perfectly,there is a high probability that a selection made by relying on thosesame measurements—even during the same shopping experience—will fail tomeet the consumer's expectations.

Most consumers are well aware of the fact that no two persons have anidentical shape or body configuration. Those who specifically requiretheir clothing to be weft-fitted will generally seek out anestablishment able to evaluate the need for, and to effectuate,alterations to pre-set standardized clothing sizes. Rarely does the“standardized” clothing precisely fit the particular body configurationof a customer. For this reason, a professional clothing salesperson mustmark up the clothing for alteration and, if no inhouse tailoringcapability exists, send the marked up clothing out to a tailoring shopfor adjustment. When the customer returns to the retail shop forpick-up, he or she will generally try on the clothing a second time inorder to ensure that proper tailoring adjustments have been made. Incases where the measuring or tailoring functions were inaccurate, theclothing will be sent back again to the tailoring shop for furtheradjustment. This is obviously a cumbersome, time consuming and expensivetask.

During the course of an online shopping experience, an individual mayencounter a sporting article or a sports related accessory, such as abicycle, a bicycle helmet, or a tennis racket, which appears to beideally suited for the type of sporting activity the individual wouldlike to do. As in the case of apparel articles, there are variations inthe frame and other components of a bicycle which can affect thatbicycle's suitability for particular rider. The same can be said of manyother categories of articles. Knowing this, online shoppers oftenrefrain from buying bulky and expensive-to-ship items out of fear thatthey may not fit and need returning.

Accordingly, there is a need for improved methods and systems forcarrying out the evaluation of articles in a way which does not requirephysical access to the consumer, and which enables the performance ofvarious tasks involved in the manufacturing, alteration, selection,and/or delivery of such articles.

SUMMARY OF THE INVENTION

The inventor herein proposes systems and methods to facilitateevaluation and/or selection of articles for purchase by or on behalf ofa consumer having access to one or more article(s) deemed by thatconsumer to be well-fitting (e.g., not requiring any modification), inthe case of apparel articles, or well suited to a particular activityperformed by that consumer, in the case of other articles. A consumerwith access to an image capture device and one or more well-fitting orwell-suited article(s) of remotely ascertainable dimensions or a wellfitting or well-suited article of remotely unascertainable dimensionsalong with a secondary (“scaling”) article of remotely ascertainabledimensions can generate a single image file suitable for use inaccordance with embodiments of the present disclosure. According toembodiments consistent with the present disclosure, the well-fitting orwell-suited article serves as a reference from which the potential fitof a commercially available article can be assessed or, in the case ofapparel articles, from which a remotely disposed tailor or seamstressmay fashion a custom made article.

In embodiments, a method for evaluating and/or selecting articles isexecutable by a computer having at least one processor and a memorycontaining instructions executable by the at least one processor toreceive and/or retrieve one or more image files. In embodiments, asingle received or retrieved image file corresponds to an image having afirst grouping of pixels associated with a well-fitting or well-suitedreference article and a second grouping of pixels associated with atleast one scaling article having one or more discernible features ofknown dimension(s). In some embodiments, a received or retrieved imagefile corresponds to an image having a grouping of pixels associated witha reference article having one or more discernible features of knowndimension(s). Each image is partitioned based on at least one of pixellocation, color, intensity, or texture, and contours are determined foreach article to obtain one or more pixel dimension(s) for each article.The pixel dimension(s) for the scaling article image are then related tothe known dimension(s) to obtain actual dimensions for the apparelreference article, and a profile is generated. Control points andmeasurements are calculated on the profile of the reference article. Inembodiments, the profile of a reference article submitted as awell-fitting example by a consumer, or one or more metrics derived fromthe profile, are compared to the profile(s) of articles(s) beingevaluated for purchase.

In some embodiments, a system for evaluating and/or selecting articlesavailable in various sizes and/or configurations, comprises at least oneprocessor and a memory containing instructions executable by theprocessor to receive and/or retrieve an image file. In some embodiments,the processor is operative by execution of the instructions to at leastone of receive or retrieve an image file corresponding to an imagehaving a first grouping of pixels associated with a reference articleand a second grouping of pixels associated with a scaling article havingone or more discernible features of known dimension(s). In anotherembodiment, the processor is operative, by execution of theinstructions, to at least one of receive or retrieve an image filecorresponding to an image having a grouping of pixels associated with areference article having one or more discernible features of knowndimension(s). The instructions contained in memory are furtherexecutable by the at least one processor to partition each image basedon at least one of pixel location, color, intensity, or texture, andcontours to obtain one or more pixel dimension(s) for each article. Inan embodiment, the instructions contained in memory are furtherexecutable to relate pixel dimension(s) for the scaling article to theknown dimension(s) to obtain actual dimensions for the referencearticle, and to generate a profile. In some embodiments, theinstructions contained in memory are further executable by the processorto compare the profile of a reference article submitted as awell-fitting example by a consumer (or one or more metrics derived fromsuch profile) to the profile(s) or derived metric(s) of articles(s)being evaluated for purchase. In some embodiments, the instructionscontained in memory are further executable by the processor to comparethe profile of a reference article submitted as being well suited to anactivity performed by the consumer (or one or more metrics derived fromsuch profile) to the profile(s) or derived metric(s) of articles(s)being evaluated for purchase.

In yet another embodiment, a computer program product comprises acomputer usable medium having a computer readable program code embodiedtherein. The computer readable program code is executable by a processorto implement a method for generating profile matching scores tofacilitate evaluation of various articles for “fit” on behalf of aconsumer and/or to determine an article's applicability to asocio-demographically definable group of consumers. In an embodiment,the code is executable by a processor to partition an image whichincludes an apparel article and, optionally, a scaling article, whereinthe partitioning is based on at least one of pixel location, color,intensity, or texture. The code is further executable by a processor todetermine, for each article, one or more pixel dimension(s) based on thepartitioning. In an embodiment, the code is executable by a processor torelate the pixel dimension(s) for a scaling article image to its knowndimension(s) to obtain actual dimensions for the apparel referencearticle image, and to generate a profile based on these dimensions. Thecode is further executable by a processor to calculate control pointsand measurements based on the profile generated for an apparel referencearticle. In an embodiment, the code executable by the processor causes acomparison to be made between the profile(s) of articles(s) beingevaluated for purchase (or metrics derived therefrom) and the profile ofa reference article submitted as a well-fitting example by a consumer(or corresponding metrics derived therefrom). The comparison processresults in the generation of a matching score and/or an indication offit quality.

Other and further embodiments of the present invention are describedbelow.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1A depicts a block diagram of a system for managing the creation ofan article profile on behalf of a consumer and/or a vendor orprospective vendor of articles, as initiated using a user displayterminal, according to one or more embodiments of the invention;

FIG. 1B depicts a block diagram of a system for creating and matching ofarticle profiles for consumers and/or vendors or prospective vendors ofarticles, as performed at a server, according to one or more embodimentsof the invention;

FIG. 2 is a flow diagram of a method for managing the creation ofarticle profiles according to one or more embodiments of the presentdisclosure;

FIG. 3 is a flow diagram of a method for facilitating the creation ofarticle profiles using article images created, received and/or edited ata user display terminal as, for example, a sub-process of the method ofFIG. 2, according to one or more embodiments of the present disclosure;

FIG. 4 is a flow diagram of a method for determining contours of thearticle(s) to be included in a profile as, for example, a sub-process ofthe method of FIG. 2, according to one or more embodiments of thepresent disclosure;

FIG. 5 is a flow diagram of a method for scaling the contours andgenerating a profile for an article as, for example, a sub-process ofthe method of FIG. 2, according to one or more embodiments of thepresent disclosure;

FIG. 6 is a flow diagram of a method for automatically comparing theprofile associated with a well-fitting article selected by a consumerand the profile associated with one or more articles being evaluated byan interested party, according to one or more embodiments of the presentdisclosure;

FIG. 7 is a network message flow diagram depicting the exchange ofmessages, over a communication network, between a display terminalutilized to capture and/or submit an article image and a server whichprocesses the image to develop and/or utilize a profile based on thepresent disclosure;

FIG. 8A depicts a display terminal operated by a user to visuallypresent, on a display thereof, a captured or received image of anapparel article to which default markings have been automatically addedto highlight areas applicable and/or inapplicable to profile generation,according to one or more embodiments of the present disclosure;

FIG. 8B depicts the display terminal of FIG. 8A following execution ofinstructions, by a processor, to place additional markings on areas ofthe displayed image to be preserved for profile generation, according toone or more embodiments of the present disclosure;

FIG. 8C depicts the display terminal of FIGS. 8A and 8B operated by auser to visually present images of article(s) to be used in profilegeneration, following removal of background areas inapplicable toprofile generation and rendering to the display of contour boundariessurrounding foreground areas applicable to profile generation, accordingto one or more embodiments of the present disclosure;

FIG. 9A is an image of an exemplary apparel article showing thelocations of relevant reference lines and a control point thereon foruse in creating a profile for that article in accordance with theembodiments of the present disclosure;

FIG. 9B depicts the arrangement of control points and control linescollectively defining a profile image derived, for the exemplary apparelarticle of FIG. 9A, according to embodiments of the present disclosure;

FIG. 9C depicts the arrangement of control points and control linescollectively defining a profile image derived for another apparelarticle according to embodiments of the present disclosure;

FIG. 9D depicts a superposition of a target profile image applicable toan apparel article selected by or on behalf of a user and a publicprofile image applicable to an apparel article of the same type, thesuperposition being shaded to differentiate between areas of overlap,areas covered only by the target profile image, and areas covered onlyby the public profile image; and

FIG. 10 is a detailed block diagram of a computer system, according toone or more embodiments.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures. The figures are not drawn to scale and may be simplifiedfor clarity. It is contemplated that elements and features of oneembodiment may be beneficially incorporated in other embodiments withoutfurther recitation.

DETAILED DESCRIPTION

Embodiments of the present invention include systems and methods forevaluating, selecting, and/or specifying articles to be or already madeavailable for purchase by or on behalf of a consumer having access toone or more article(s) deemed by that consumer to be well-fitting (i.e.,not requiring any modification) or well-suited (i.e., configured to suitperformance of a particular sports or work activity by the consumer).Any consumer with access to an image capture device and either to one ormore well-fitting or well-suited article(s) of remotely ascertainabledimension(s) (e.g., an article having one or more features, discerniblein an image, whose dimension(s) can be determined from locally availableinformation so as to not require real time, physical access to thearticle itself) or to a well fitting or well-suited article of remotelyunascertainable dimensions along with a secondary article of remotelyascertainable dimension(s) can generate an image file suitable for usein accordance with embodiments of the present disclosure.

Various embodiments of systems and methods for creating, accessing,analyzing, and utilizing profiles of articles, such as apparel articlesor sporting goods, based on analysis of available article images and/orspecified dimensions and presenting the results of comparisons betweentarget profiles associated with respective consumers and public profilesassociated with publicly available apparel and/or other merchandise aredescribed below. In the following detailed description, numerousspecific details are set forth to provide a thorough understanding ofthe claimed subject matter. However, it will be understood by thoseskilled in the art that claimed subject matter may be practiced withoutthese specific details. In other instances, methods, apparatuses orsystems that would be known by one of ordinary skill have not beendescribed in detail so as not to obscure claimed subject matter.

Some portions of the detailed description which follow are presented interms of operations on binary digital signals stored within a memory ofa specific apparatus or special purpose computing device or platform. Inthe context of this particular specification, the term specificapparatus or the like includes a general purpose computer once it isprogrammed to perform particular functions pursuant to instructions fromprogram software. In this context, operations or processing involvephysical manipulation of physical quantities. Typically, although notnecessarily, such quantities may take the form of electrical or magneticsignals capable of being stored, transferred, combined, compared orotherwise manipulated. It has proven convenient at times, principallyfor reasons of common usage, to refer to such signals as bits, data,values, elements, symbols, characters, terms, numbers, numerals or thelike. It should be understood, however, that all of these or similarterms are to be associated with appropriate physical quantities and aremerely convenient labels. Unless specifically stated otherwise, asapparent from the following discussion, it is appreciated thatthroughout this specification discussions utilizing terms such as“processing,” “computing,” “calculating,” “determining” or the likerefer to actions or processes of a specific apparatus, such as a specialpurpose computer or a similar special purpose electronic computingdevice. In the context of this specification, therefore, a specialpurpose computer or a similar special purpose electronic computingdevice is capable of manipulating or transforming signals, typicallyrepresented as physical electronic or magnetic quantities withinmemories, registers, or other information storage devices, transmissiondevices, or display devices of the special purpose computer or similarspecial purpose electronic computing device

In the context of this particular specification, the term specificapparatus or the like includes a general purpose computer once it isprogrammed to perform particular functions pursuant to instructions fromprogram software. In this context, operations or processing involvephysical manipulation of physical quantities. Typically, although notnecessarily, such quantities may take the form of electrical or magneticsignals capable of being stored, transferred, combined, compared orotherwise manipulated. It has proven convenient at times, principallyfor reasons of common usage, to refer to such signals as bits, data,values, elements, symbols, characters, terms, numbers, numerals or thelike. It should be understood, however, that all of these or similarterms are to be associated with appropriate physical quantities and aremerely convenient labels. Unless specifically stated otherwise, asapparent from the following discussion, it is appreciated thatthroughout this specification discussions utilizing terms such as“processing,” “computing,” “calculating,” “determining” or the likerefer to actions or processes of a specific apparatus, such as a specialpurpose computer or a similar special purpose electronic computingdevice. In the context of this specification, therefore, a specialpurpose computer or a similar special purpose electronic computingdevice is capable of manipulating or transforming signals, typicallyrepresented as physical electronic or magnetic quantities withinmemories, registers, or other information storage devices, transmissiondevices, or display devices of the special purpose computer or similarspecial purpose electronic computing device

FIG. 1A depicts a block diagram of a system 10 which includes an enduser device 20 (“communication display terminal”) for managingsubmission and user input into a process for generating an articleprofile according to one or more embodiments consistent with the presentdisclosure. The display terminal 20 comprises Central Processing Unit(CPU) 12, support circuits 14, a memory 16, a display device 18, andtransmission and receiving devices (“transceivers”) 19. In someembodiments display terminal 20 is a mobile terminal such, for example,as a smartphone, personal digital assistant (PDA), tablet computer, orwearable computer, and the transmission and receiving devices 19comprise one or more wireless transceivers compliant with correspondingwireless transmission protocol(s) such as IEEE 802.11, IEEE 802.13,Bluetooth, and/or cellular transmission protocols such as CDMA, TDMA,and/or GSM. In other embodiments, the display terminal 20 may comprise adesktop computer, a notebook computer, or a laptop computer and thelinks between display terminal 20 and a communication network 1 are notlimited to wireless links but, instead, may comprise utilize anysuitable medium such, for example, as electrical power wiring, opticalfiber, premises LAN cabling or the like.

The CPU 12 may comprise one or more commercially availablemicroprocessors or microcontrollers that facilitate data processing andstorage. The various support circuits 14 facilitate the operation of theCPU 12 and include one or more clock circuits, power supplies, cache,input/output circuits, and the like. The memory 16 comprises at leastone of Read Only Memory (ROM), Random Access Memory (RAM), disk drivestorage, optical storage, removable storage and/or the like. In someembodiments, the display device 18 may be a touch screen able to acceptinput from a user's finger or input from a stylus. In some embodiments,the memory 16 comprises an operating system (not shown in FIG. 1A) andone or more applications 22. In some embodiments, applications 22include a web browser application 24 and a communication clientapplication 28 configured, by execution of instructions by CPU 12, toset up a telephone call, to send and receive SMS or MMS messages, and/orto send and receive e-mail messages to or from another entity withauthorized access to network 1.

The network 1 comprises one or more communication systems that connectcomputers by wire, cable, fiber optic and/or wireless link facilitatedby various types of well-known network elements, such as hubs, switches,routers, and the like. The network 1 may include one or more of anInternet Protocol (IP) network, a public switched telephone network(PSTN), and/or other mobile communication networks, and may employvarious well-known protocols to communicate information amongst thenetwork resources.

In some embodiments, applications 22 further include a profile imagesubmission and editor (PISE) application module 26 while in otherembodiments, the profile submission and editor application is hosted bya remote server. Thus, the functions of the PISE module 26 may beperformed entirely at the display terminal, entirely at a remote server,or they may be distributed between these. In the latter two cases, someor all of the functions of the PISE module may be implemented locally atthe display terminal 20 via web browser application 24. In someembodiments, the communication display terminal 20 includes an imagecapture device (not shown) which is operable by a user of terminal 20 toacquire an image of an article such, for example, as an article ofapparel. According to an embodiment, the article of apparel is selectedby a user of display terminal 20 as the target of image acquisitionbecause it is deemed by that user to be well-fitting, such that aprofile based on that article (“reference article”) facilitates theevaluation of commercially available articles for which public profilesare available, or the creation of new articles responsive, for example,to the user's request(s). According to other embodiments, the imagecapture device may be used to acquire an image of anther category ofreference article. For example, in the context of bicycling, a user mayacquire one or more images of a favorite bicycle frame, or of a helmet.In the context of tennis, a user may acquire one or images of a tennisracket. In the context of carpentry, a user may have a particular handor power tool which is especially favored.

It is not necessary for the display terminal 20 to include, or even beconnected to an image capture device. What matters is that the profileimage submission and editor application (PISE) module 26 (whetherimplemented entirely as a local application, entirely remotely byconnection to a server, or as some hybrid of these two) has access to animage file which contains either an image of an article of apparel forwhich there is at least one known dimension (e.g., a dimension such asthe maximum width or height) or an image of an article for which thereis no known dimension together with a scaling article (e.g., aubiquitous article having a well known or readily ascertainabledimension in the same field of view as the reference article upon imageacquisition). By way of illustrative example, a dimension is readilyascertainable if it can be determined by reference to the image itself(e.g. by reference to data previously or contemporaneously supplied by auser or some other party, or by a common understanding or convention).As such, PISE module 26 may be used to process an image received fromanother device as, for example, a file transferred or retrieved fromlocal storage and/or downloaded or received from a remote location vianetwork 1.

As explained in greater detail below, the role of the image processed byPISE module 26 is to provide the basis upon which a standardized“target” profile can be derived and, in some embodiments, used in anautomated process executable as instructions by a processor to determinethe closeness of a match with one or more public profile(s) associatedwith commercially available articles of the same type. Depending uponthe degree of match between a target profile and a public profile, apotential consumer and/or vendor is given a higher (or lower) assuranceand/or confidence that an apparel article acquired in an e-commercetransaction—via interaction with one or more of e-commerce servers70—will fit as well or at least nearly as well as the article from whichthe target profile was derived. In other embodiments, a supplier ofcustom-fitting clothing may offer well-fitting or well-suited articlesto specific consumers or groups of consumers by reference solely to aset of one or more target profiles. Likewise, a higher (or lower)assurance and/or confidence that a bicycle frame, bicycle helmet, tennisracket, or tool will suit a particular user as well as an applicablereference article.

As noted above, the entire process of profile generation may beperformed by display terminal 20 by, for example, execution ofinstructions by CPU 22. However, in the embodiment depicted in FIGS. 1Aand 1B, the reference apparel article image(s) captured by displayterminal 20 are submitted by communication display terminals such asdisplay terminal 20 as an image file transmitted via network 1 to anapparel article profile creation and maintenance server 21.

With continuing reference to FIG. 1A, it will be seen that creation andmaintenance server 21 includes a profile creation module which includesan image segmentation engine 40, a contour analysis engine 50, and aprofile generation module 60. According to embodiments consistent withthe present disclosure, image segmentation engine 40 partitions anacquired or retrieved image into groups of pixels, and at least one ofthese groups corresponds to a reference article of apparel. In anembodiment, pixels are grouped according to color, intensity, andtexture. A principal objective of segmentation is to distinguish thereference article and, if present, a scaling article, from the imagebackground so that these can be subjected to further processing bycontour analysis engine 50. According to some embodiments, thebackground is removed after segmentation and what remains is convertedto a grayscale image. Contour analysis engine 50 then employs a contourfinding algorithm to identify the contours of a reference apparelarticle and, if applicable, the scaling article. In embodiments, thecontours are represented as 2 dimensional mathematical curves accordingto an iterative process which a user can terminate as soon as he or sheis satisfied with the visually displayed results. The results of theabove-described segmentation and contour analyses are used by profilegeneration module 60, the output of which is provided to a datarepository 80 comprising user/target profiles 82 and public profiles 84.

In some embodiments, a match evaluation engine 90 generates a matchscore which serves as an objective characterization of fit for use, forexample, by a user seeking to evaluate commercially available articlesof apparel for which a public profile is available.

The image segmentation process admits of substantial variation, and anyconventional technique or combination of techniques capable of isolatinggroups of pixels corresponding to one or more articles of interest froma background may be employed. In that regard, image segmentation is awell-studied problem to which many solutions have been proposed.Examples of segmentation approaches available for implementation underopen source licensing terms are embodied by such source code librariesas ImageJ, ImageMagick, ITK and OpenCV, to name a few. In an embodiment,two such segmentation approaches are employed. For a rapid or “firstpass” segmentation, a Watershed transformation—as described by SergeBeucher and Christian Lantuej in “Use of watersheds in contourdetection”, International Workshop on Image Processing, CCETT/IRISA,Rennes, France (1979), is employed by execution of instructionsassociated with segmentation engine 30. Then, to get a more precisesegmentation, a Graph-cut method is implemented by execution ofinstructions associated with segmentation engine 30.

In a Watershed transformation according to embodiments consistent withthe present disclosure, some parts of an image are assigned the statusof high points while other parts are assigned the status of low points.A user identifies the low points of foreground and background by markingcorresponding areas of an image. Water sources are then placed at theselow points, and the resulting flow results in a flooding of the entireimage. The water sources continue the flooding until they meet and thisdefines the barriers which separate the foreground and background.

Segmentation according Graph-cut techniques, according to embodimentsconsistent with the present disclosure, treats pixels of the imagecontaining a reference article and, optionally, a scaling article, asnodes in a graph. Adjacent pixel nodes are connected by a weighted edge,such that the weights on the edges of a node are determined by thesimilarity of its neighbors. In this case, the user markings are used todistinguish foreground pixels (“source”) from background pixels (“sink”)wherein the image is turned into a weighted graph with a source and askink. The object of the segmentation task is thus transformed intofinding a cut in the graph that separates the source and sink andoptimizes the flow across the cut. By way of illustrative example, auser of communication terminal 20 using web browser application 24 toaccess remote PISE functionality, or a local instantiation of PISEapplication 26 is, in some embodiments, prompted or instructed to placeforeground marks on portions of an image corresponding to a referencearticle and, if present, to a scaling article of known dimensions, andalso to place background marks on one or more portion(s) of the imagecorresponding to the background. In some embodiments, one or moreinitial markings may be rendered automatically to the display 18 ofterminal 20 based on a default presumption that the reference article isat the center of the acquired image.

FIG. 1B depicts a block diagram of a system 100 for the creation andmatching of article profiles for consumers and/or vendors or prospectivevendors of articles, as performed at a server 110 according to one ormore embodiments of the invention. Server 110 is connected via one ormore transceivers, and suitable network connections L₁ to L_(n), tocommunication display terminals as 120-1 and 120-2, as well as toe-Commerce server(s) 170-n. As described in connection with FIG. 1A, auser of a communication terminal as terminal 120-1 may submit an imagefor processing and, as well, utilize such terminal to make appropriatemarkings for segmentation as also described above.

The server 110 comprises Central Processing Unit (CPU) 101, supportcircuits 103, a memory 104, and transmission and receiving devices 112.In some embodiments server 110 comprises one or more wirelesstransceivers compliant with corresponding wireless transmissionprotocol(s) such as IEEE 802.11, IEEE 802.13, BLUETOOTH, and/or cellulartransmission protocols such as CDMA, TDMA, and/or GSM. Each of thecommunication terminals, as terminal 120-1, also comprises a CPU 121,support circuits 123, and a memory 124 having stored therein executablecode corresponding to an operating system 125 and client applications126 (as exemplified by client applications 22 in FIG. 1A). Inembodiments, the communication terminals as terminal 120-1 includes adisplay device such as a touch screen able to accept input via movementof a stylus or a user's finger. In some embodiments, applications 126include a communication session module configured, by execution ofinstructions by CPU 121, to set up a telephone call and/or send an SMSor MMS message to an intended recipient via one or more links (notshown) of a communication network 127.

CPU 101 may comprise one or more commercially available microprocessorsor microcontrollers that facilitate data processing and storage. Thevarious support circuits 103 facilitate the operation of the CPU 101 andinclude one or more clock circuits, power supplies, cache, input/outputcircuits, and the like. The memory 104 of server 110 comprises at leastone of Read Only Memory (ROM), Random Access Memory (RAM), disk drivestorage, optical storage, removable storage and/or the like. In someembodiments, the memory 104 comprises an operating system 105 and one ormore applications 106. According to embodiments consistent with thepresent disclosure, memory 104 also contains instructions, executable byCPU 101, corresponding to a profile creator 130, one or more optionale-commerce servers as server 170-1, which includes article descriptivedata 172, public profiles 174, and transaction processing instructions176 for consummating ordering and/or sales transactions, and a datarepository 180 which includes user “target” profiles 182, correspondingto profiles associated with one or more well fitting articles selectedby a user, and public profiles 184, corresponding to profiles associatedwith articles which a supplier or vendor has made commercially availablevia, for example, one of the e-commerce servers as server 170-1. Memory104 further includes a fit match evaluator indicated generally at 190,the operation of which is to be described in greater detail shortly.

As discussed previously in connection with FIG. 1A, profile creator 130includes a segmentation analyzer 140 which, in an exemplary embodiment,includes both a watershed transformer 142 and a graph-cut detector 144.Also consistent with the FIG. 1A as previously described, profilecreator 130 further includes a contour analyzer 150 which includes abackground/foreground designation recognizer 152, background remover154, and a contoured grayscale image generator 156. Finally, profilecreator 130 includes a profile generator 160 that includes a contourcurve scaler 162, a control point detector 164, and a line measurementgenerator 166.

As noted previously, a profile in accordance with embodiments of thepresent disclosure consists of a set of curves which represent thecontours—found by image segmentation and contour analysis—for areference article or an article made available commercially for sale byone or more vendors (each, referred to as a “target article” herein). Aprofile according to some embodiments further includes a set of controlpoints, measure lines, and control lines which, collectively, representthe measurements of each apparel item. A profile may be represented byany suitable mathematical or computer object to be stored, transported,displayed, and/or manipulated. In one embodiment, a profile isrepresented by a Scalable Vector Graphic (SVG) file on a client'smachine (e.g., communication terminal, computer, etc). and is stored asvarious records in a server database (e.g., public profile 174 ofe-Commerce server 170-1, or as private and public profiles 182, 184 indata repository 180).

According to embodiments consistent with the present disclosure, contourcurves may be any two-dimensional mathematical curve such as Bezier,B-spline, or connected line segments. In an embodiment, profilegenerator 160 is configured to employ Bezier curves in the interests ofboth accuracy and simplicity. A contour is typically represented by alinked list of line segments, with a contour starting at the point withthe highest y-value in an x-y orthogonal coordinate system. Becausecontours are expressed as equations, minimum and maximum values may bereadily calculated for each segment and for a contour as a whole.Likewise, such things as the area of a contour, the centroids of acontour, and arc length can also be readily determined.

According to embodiments, profile generator 160 includes a contour curvescaler 162. In one embodiment, the height (or any other known dimension)of a reference article is used by contour curve scaler 162 to scale thecurves of a profile. According to other embodiments, the presence of ascaling article of known dimensions, in the same image as the referencearticle, is used to perform the scaling. In the former case, forexample, if the height or any other dimension of the reference articleis known, contour curve scaler relates the pixel dimension of thatarticle to the actual dimension, such that the remaining curves of thecontour are scaled to their actual dimensions. In the latter case, thescaling article of one or more known dimensions is used by contour curvescaler 162 to perform the requisite scaling. Suitable examples ofscaling articles which may be readily identified in an image followingsegmentation include a CD disc (which has a diameter of 4.72 inches) ora piece of A4 paper, which is 8.27×11.02 inches. By relating the pixeldimensions of a scaling article with its known dimension(s), the contourcurves of a reference article derived from the same image can be readilyscaled to their actual dimensions. It should also be noted that if auser has a favorite scaling article which does not have a universallyrecognizable set of one or more characterizing dimensions, then he orshe may save the dimensions of that item and associate it with his orher profile. Such values may be used as defaults and save a user fromhaving to identify the scaling article within an image each time areference article is to be submitted.

Within continuing reference to FIG. 1B, and as noted previously, profilegenerator 160 further includes control point detector 164. As usedherein, each control point is a point in a profile which identifies animportant feature of an article. For an apparel article such as a shirt,a set of one or more control points may identify the end of a shoulderor of a sleeve. For pants, the control point(s) may identify the crotch.As used herein, measure lines are those lines which connect a pair ofcontrol points to give an actual measurement. In an embodiment, controlpoint detector 164 finds control points based on the known geometricproperties of the contour curves. For different profile types and/orarticle types, these properties vary, so the methods to calculate thecontrol points can vary accordingly. There are many geometric propertiesof a profile that can be exploited to calculate control points, and solong as these yield objectively valid results, any of them may beutilized. Specific details about the process of computing control pointswill be described in greater detail shortly.

In embodiments, control lines are horizontal lines that cut acrosscontour curves. When dragged up and down the SVG file, they can give aset of measurements. In an embodiment, line measurement generator 166records the y-coordinate of control lines as or after they are draggedinto position. This y-coordinate is then used to calculate theintersections of the contour curves. Since the curves are represented bycubic equations, the intersections between them can be found by solvingthese equations. In embodiments, an intersection is found by consideringa segment or portion of a contour curve rather than the curve in itsentirety. Resolving a curve into segments in such a manner reducescomputational complexity and, more importantly, enables only validintersections to be identified. The way to segment a curve to quicklyfind a solution may be highly dependent upon the shape of a curve andwhat kind of solution is to be obtained. According to embodiments,measurement lines and control lines derived in the foregoing mannercomprise actual size measurements of an article profile.

After profiles have been generated by profile creator 140, they can bematched to, for example, give an indication of how similar a firstprofile (e.g., for a reference article) is to a second profile (e.g., acommercially available article of the same category as the referencearticle). A group of two or more articles are deemed to be of the samecategory, for purposes of performing fit matching, when they have thesame number of contours in their respective profile. In this regard, andas already noted above, embodiments of a profile creation andmaintenance server 110 consistent with the present disclosure include afit match evaluator 190. Fit match evaluator comprises an overlaygenerator 192, an undercover calculator 194, overcover calculator 196,match area calculator 198, and score calculator 199.

According to embodiments consistent with the present disclosure, a userof a communication terminal, as terminal 120-1, acquires images and byinteracting within server 110, creates profiles based on his or herbest-fitting clothing items. These are then used to match against publicprofiles that a remotely located vendor is offering for sale via, forexample, an e-commerce website. For an article of apparel whichcomprises only a single contour such, for example, as a T-shirt, overlaygenerator 192 overlays. In an embodiment, overlay generator 192 performsthis overlaying function by finding the centroid of each contour andthen aligning the two contours by their top and x-coordinate(horizontal) of their centroids. In another embodiment, overlaygenerator 192 superimposes a grid system over the contours and alignsthe contours along grid lines, for each of a plurality of alignments,computes respective scores, and selects the best score among thedifferent alignments. As will be readily ascertained by those skilled inthe art, the greater the number of grid lines (or lower the spacingbetween them), the greater the accuracy and computational complexity.For simple, single contour articles, the inventor herein has determinedthat the centroid overlay technique is both computationally efficientand faster, and yet is still able to produce satisfactory results.

In some embodiments, fit match evaluator 192 is further responsive touser input, rendered via a communication terminal as terminal 120-1, toenable optimization of the overlay. In an embodiment, a user may input,via a user interface presented at the communication terminal, to changethe overlay by moving a candidate profile around on top of the targetprofile via “drag and drop” movements. In some embodiments, the userinterface is further configured to enable the user to alter theorientation of one profile relative to the other (e.g., by rotating thecandidate profile relative to the target profile) so as to furtherimprove the matching score by interactively and/or iteratively adjustingthe overlay.

In embodiments consistent with the present disclosure, undercovercalculator 194 of fit match evaluator 190 calculates the area that iscovered by the target profile contour but not covered by the candidateprofile contour. This area is referred to herein as the “undercover” ofa match. Likewise, overcover calculator 196 of fit match evaluator 190calculates the area that is covered by the candidate profile contour butnot covered by the target profile contour. This area is referred toherein as the “overcover” of a match. Match area calculator 198 of fitmatch evaluator 190 computes a value representing the area covered byboth the target and the candidate's contours. This is referred to hereinas the “match area” of a match.

The overcover, undercover and match areas may be computed using anysuitable computational geometry algorithm. In an embodiment, these areasare determined by utilizing the inherent ability of image software torender images with alpha values. For example, a target profile contouris first drawn with a color having an alpha value of 1.0. Then, acandidate profile contour is drawn over it with a different color havingan alpha value of 0.5. Now, the undercover, overcover and match areawill all have different colors. Fit match evaluator 190 need then onlyscan through the drawing's image buffer and count the number of pixelsof three different colors to find the respective areas.

In some embodiments, score calculator 199 of fit match evaluator 190computes a score by looking at the percentage of mismatched parts(undercover and overcover) over the area of the target profile contour.In calculating the score, weights may be given to different areas toexpress preferences of the match algorithm. In an embodiment, thefollowing formula is used by score calculator 199 to arrive at amatching score:SCORE=100.0*(1.0−(A _(UNDERCOVER)*3.0+A _(OVERCOVER)*1.5)/(A _(TARGET)))where: Target Area(A _(TARGET))=(A _(UNDERCOVER)+Area_(MATCH))

and: Score<0.0, it is set to 0.0

For profiles having more than one contour as, for example, a pair ofpants, each contour score may be scored separately by score calculator199, and then a weighted average can be computed to arrive at the scorefor the whole profile. Using the above described formula, a score above85 may be deemed to indicate that the candidate profile contourcorresponds to an article that is a “pretty good” or acceptable fit,while anything below a 75 may be excluded. Those candidate profilesfalling between these two values may be borderline. In embodiments, theuser interface executing at a communication terminal may be configuredto display an indication of fit as “good”, “fair”, “questionable” or“poor” via, either color codes, a linear scale with a pointer, a numericscore, alphanumeric indicator, or some other suitable means by which auser may qualify a candidate article of apparel.

After profiles are created and stored in a database as data repository180, they may be made available for search or evaluation by members ofthe public, specifically identified persons authorized by a user,vendors of commercially available clothing, or even remotely locatedtailors who may wish to customize an offer to an individual user or to agroup of users fitting a particular socio-demographic profile (e.g.,age, gender, place of residence, income or a combination of these) orwith whom they have a pre-existing relationship. In an embodiment, onemay conduct a search of public profiles starting with a target profileas previously defined. The goal may be to search the database(s) 184and/or 174 and identify those public profiles having a score equal to orgreater than a threshold value (e.g. 85). Since computing a matchingscore is computationally expensive, a “brute force” technique of pullingup each profile in the database, in seriatim, and calculating a scoreagainst a target would take too much time and not be practical in mostcases.

According to embodiments, some additional dimensional data is storedalong with each public profile to simplify the matching process. In anembodiment, the width, height and area of the public profile contoursare stored in the database. Using the target profile contour'sdimensions (width, height, area), only those candidate profiles of asimilar type and whose contour's dimensions only deviate from the targetby less than a threshold percent are selected. This threshold may dependsubstantially according to the implementation. For example, a smallervalue may return fewer profiles and therefore be computationallyefficient, but it may also reduce the number of candidates to anunacceptably low number on a statistical basis. Likewise, a higherthreshold value might relax the matching criteria to the point ofunnecessary complexity. It is expected that a threshold on the order often percent represents an appropriate compromise between those twoextremes.

According to an embodiment, for each candidate profile returned afterdimensional threshold filtering as described above, its matching scoreis calculated against the target profile and the former is discarded ifthe matching score is determined to be less than a threshold (e.g., 85).The scoring process continues until all candidate profiles meeting thefiltering criteria have been scored or, in some embodiments, a certainnumerical limit (e.g., 20) has been reached. The results are thendisplayed to the user. In an especially preferred embodiment,information (i.e., pricing data, images, or links to the foregoing) foreach candidate profile having an acceptable matching score istransmitted to or presented to the user, or the availability of the samefor download is communicated to the user, contemporaneously with theidentification of such profile. Such an arrangement is preferred becausethe matching process will typically take time to complete and should beallowed to proceed asynchronously. In other words, a user need not beforced to wait for all matching scores to be computed but instead thescores and associated information may be sent as it becomes available.

FIG. 2 is a flow diagram of a method 200 for managing the creation ofarticle profiles according to one or more embodiments of the presentdisclosure. The method 200 is entered at 202 and proceeds to 204 wherethe method receives or retrieves one of two categories of images. In anembodiment, a first category of image is that of a reference articleselected by a user for whom a profile is to be generated, or by anotherparty acting on such user's behalf, to be a well fitting or well-suitedexample. A second category of image is that of an article available forpurchase by or on behalf of a consumer for whom a profile is to be, oralready has been, generated.

In some cases, the article or articles which are the subject of thereceived or retrieved image may possess one or more machine discernablefeatures having standard, universally accepted dimensions or dimensionspreviously identified by a contributor. The presence of such features inan image, according to one or more embodiments, permits the dimensionsof all article identified therein to be ascertained after imageanalysis. If no such features exist, the received or retrieved imagefurther includes a “scaling” article of generally accepted orcontributor-identified dimensions. Here again, the presence of such anarticle in image, according to embodiments, permits the dimensions ofthe other article or articles in the same image to be determined. Themethod 200 then proceeds to 206.

At 206, method 200 determines, by execution of instructions by aprocessor, the contours for each article in the same image to obtain oneor more pixel dimension(s) for each article in the received or retrievedimage. From 206, the method 200 proceeds to 208. At 208, in the casewhere details from which the dimensions of the article or articles canbe derived are unknown, method 200 relates the pixel dimensions of ascaling article to its known dimension or dimensions in order to obtainactual dimensions for the article(s) present in the image.Alternatively, where such details are known, then method 200 relates thepixel dimension(s) of the known feature(s) or portion(s) of an articlein an image to the true dimension(s) associated with such feature(s) inorder to obtain actual dimensions for the article(s) present in theimage. From 208. Method 200 proceeds to 210.

At 210, method 200 generates and stores a profile for each of thearticles subjected to the process steps associated with 202 to 208. Theprofile is associated with the account of a user, who may be a consumer,an e-commerce vendor of articles, the producer of articles, or a partyhaving an interest in ascertaining the actual or potential needs of asingle consumer, a group of consumers, or a population segment for whichenough consumer profile data is available to reach statisticalsignificance. In embodiments, authenticated access privileges are givento individuals and/or business entities such that they may perform oneor more of profile generation activities, match scoring activities,and/or market analysis activities, in accordance with the respectiveneeds and subscription level of such individuals or entities. Theprocess proceeds to 212, where method 200 determines whether or notanother profile is to be generated for another article (whether onbehalf of the same consumer, a different consumer, the same vendor ormanufacturer, or another vendor or manufacturer). If the determinationat 212 is yes, the method 200 returns to 204 and the above-describedsequence is repeated. If the determination at 212 is no, then method 200proceeds to 214 and terminates.

FIG. 3 is a flow diagram of a method 300 for facilitating the creationof article profiles using images created, received and/or edited at auser display terminal as, for example, a sub-process of the method 200of FIG. 2, according to one or more embodiments of the presentdisclosure. The method 300 is entered, in this example, at 302. At 302,method 300 receives, at a server, a notification that a profilegeneration and/or modification application executed, for example, at aremote display terminal such as a smartphone, tablet computer, or thelike, has been launched and/or has an image file available for upload.

Alternatively, the functionality of the profile generation and/ormodification application may be launched, at the server, via a webbrowser application executing on the remote display terminal. From 302,the method 300 proceeds to 304, where method 300 receives, from theremote terminal device, an image file containing the images of one ormore target articles and, optionally, a scaling article, where at leastone of the images includes initial designations of foreground andbackground areas. In an embodiment, areas of an image corresponding toportions of the target article(s) and, if present, scaling article, aremarked as foreground areas, while areas corresponding to the backgroundare marked by the user in a manner which distinguishes them from theforeground area(s). In an embodiment, instructions to utilize a mouse ortouch screen interface to add such markings are rendered to the display,and following their entry, a user may be prompted to confirm theirlocations. In some embodiments, the markings are placed on the image andstored with the image file before uploading. In other embodiments, theserver transmits data to the remote terminal such that a graphical userinterface containing the target article|(s) and optional scalingarticle, together with a tool bar for placement of the aforementionedmarkings are made and confirmed for remote processing. Following 304,method 300 returns to 206 of method 200.

FIG. 4 is a flow diagram of a method 400 for determining contours of thearticle(s) to be included in a profile as, for example, a sub-process ofthe method 200 of FIG. 2, according to one or more embodiments of thepresent disclosure. The method 400 is entered at 402 and is performed,in this example, at a server following receipt of image datarepresentative of at least one of an article image having at least onefeature for which dimensional data is locally accessible by the serveror of an article image for which dimensional data is not locallyavailable to or accessible by the server together with a scaling articlefor which dimensional data is locally available to and/or accessible bythe server. At 402, method 400 performs segmentation of the apparelarticle image(s) and optional scaling image, based on designations offoreground and background areas submitted by a user.

Segmentation is the process of partitioning an image into groups ofpixels that are of interest. In an embodiment, the groupings of pixelsare based on the pixel location, color, intensity and texture with theobjective being to find one or more target article(s) and, if present, ascaling article so that they can isolated from the background forsubsequent processing. As noted above in the discussion of FIG. 1B, anyavailable segmentation algorithm suitable for distinguishing foregroundand background areas may be utilized. In an embodiment, a combination ofWatershed transformation and Graph cuts processing are used to isolatethose portions of an image identified by a user as being foregroundarea(s), as by the markings included in the received image(s), fromthose portions of an image associated with the background area(s). Insome embodiments, a user may be required to place foreground marks onboth an apparel article (e.g., a shirt, coat or pants) and a scalingarticle, and also to place background marks on the background area(s).In an embodiment, the method 400 may implement an automated markingfunction by placing a mark at the center of a displayed image, theplacement of the mark being based on the premise that the apparelarticle is at the center of the displayed image.

Turning briefly to FIGS. 8A and 8B, there is depicted in FIG. 8A adisplay terminal 800 operated by a user to visually present, on adisplay 802 thereof, a captured or received image containing an apparelarticle 804 (to which default foreground marking 812 a and defaultbackground areas 810 a, 810 b, 810 c and 810 d have been automaticallyadded to highlight areas applicable and/or inapplicable to profilegeneration, according to one or more embodiments of the presentdisclosure. In this embodiment, a scaling article 806 is also present.

FIG. 8B depicts the display terminal 800 of FIG. 8A following executionof instructions, by a processor, to place additionalmarkings—representing designations placed there by the user—on areas ofthe displayed image to be preserved or removed for purposes of profilegeneration, according to one or more embodiments of the presentdisclosure. In an embodiment, the user may elect to mark areas forremoval by clicking on the “Mark to Remove” radio button and then addingadditional markings via mouse movement or touch-screen entry. Likewise,the user may elect to mark additional areas as foreground, like 812 cover the scaling article 814, after clicking the “Mark to Keep” radiobutton.

Returning to FIG. 4 it will be seen that method 400 proceeds from 402 to404, where the method 400 removes the background portion 808 of theimage and, in some embodiments, proceeds to 406 where the display of theuser display terminal is updated so that only the target article(s) andoptional scaling portion represented by the image data are rendered. Thedesignation marking and background removal processes of 402 and 404 maybe performed iteratively. As such, 406 may comprise rendering ofgenerated grayscale images to the display of a remote display terminalwith a prompt for the user to optionally update with further backgroundand/or foreground designations. At 408, the user may either confirm thatno such optional designations will be forthcoming, such that method 400proceeds to 410, or the user may make further input, such that method400 proceeds to 404 for one or more additional iteration(s).

Once the image is segmented, the background is removed over one or moreiterations, and what remains is turned into a final grayscale image,method 400 proceeds to 410, where the contour of each article (e.g.reference apparel article(s) and optional scaling article) is found. Anysuitable technique for finding the contour may be employed for thispurpose. In an embodiment, the technique described by S. Suzuki and K.Abe in a paper entitled “Topological Structural Analysis of DigitizedBinary Images by Border Following”, CVGIP, 30 1 pp 32-46 (1985) isemployed to find the article contours. In accordance with that method,the contours are represented as two-dimensional (2D) mathematical curveswhich form closed curves starting at the point with the highest Y-valuein an X-Y orthogonal coordinate system.

The contour finding process of method 400 may also be iterative. In aninitial iteration, performed at 412, the method 400 initiates renderingof one or more grey scale image(s) with contour overlay(s) to thedisplay of a remote display terminal used by a user. The method 400proceeds to 414 where a determination is made as to whether furtherrefinement is required. If so, the method 400 returns to 412 and anotheriteration is performed. Once the user is happy with the result (i.e.satisfied that the area enclosed by the respective contour curve(s)encompasses no more and no less than the entirety of each correspondingarticle, the method 400 returns to 208 of method 200. FIG. 8C depictsthe resulting target (reference or commercially available) articles 804and optional scaling article 806 bounded by their respective contourcurve.

FIG. 5 is a flow diagram of a method 500 for scaling the contours andgenerating a profile for a target article as, for example, a sub-processof the method 200 of FIG. 2, according to one or more embodiments of thepresent disclosure. In an embodiment, the method 500 is entered from 206of method 200, and corresponds to 208 and 210 thereof. Moreparticularly, the method 500 is entered at 502, where a determination ismade as to whether the profile(s) to be generated is/are based on theanalysis of more than one image of the same article. If thedetermination is yes, the method 500 proceeds to 504, and the contoursfrom multiple images are combined. By way of illustrative example, aprofile of an article such as a shoe or pair of pants requires thecontours from different images to be combined and scaled. In this case,the contours of the first of the images serve as a reference. Becausethe different images are taken from the same apparel article, adimension (e.g., the height) is presumed to be the same in both imagesand the dimension from the reference image is therefore used to scalethe contours from the second image and any other images corresponding tothat same article. If the determination at 502 was no, or following theperformance of 504, method 500 proceeds to 506.

At 506, using any known dimension of the target article(s) or scalingarticle present in an image, method 500 scales the curves of eachimage's contours. In an embodiment, a contour comprises a linked list ofcurvilinear and/or linear segments which, for example, may be Beziercurves, B-spline curves, and/or discrete linear segments. Inembodiments, each contour starts at a point having the highesty-coordinate value. The expression of contours as mathematical functionsenables the minimum value, maximum values to be readily ascertained.Moreover, the overall area encompassed by a contour, the centroid, andthe arc lengths can be readily determined.

Once the contour(s) of a target article (and scaling article, ifpresent) have been determined at 506, a profile is created for thetarget article according to one or more embodiments. To this end, method500 advances to 508, one of several steps associated with sub-process210 of method 200.

According to embodiments consistent with the present disclosure, anarticle profile comprises a set of one or more curves which collectivelyrepresent the contour(s) of that article, obtained at 506, and a set ofcontrol points, measure lines, and control lines which representstandardized measurements associated with the article. In an embodiment,control points are points (as expressed in an orthogonal coordinatesystem) of a profile that identify the location of important features inan article. Such features, for example, might include the end of ashoulder, the end of a sleeve, the crotch of a pair of pants. Measurelines are lines connecting two or more control points to give the actualmeasurement(s) by which the profiles of two or more articles can becompared for fit. Control lines, as used herein, are horizontal lineswhich cut across contour curves,

At 508, method 500 first determines the location of control points alongthe contour curve(s) of a target article. By simultaneous reference toboth FIG. 5 and FIGS. 9A and 9B, an example of the control pointdetermination sub-process 508 will be better understood. Viewing thecontour of a pants article of apparel depicted in FIG. 9A, it will beobserved that a crotch control point can be identified as a localmaximum y-value. Such a point along the contour curve of the pantsarticle can be identified by first localizing the path segment(s) thatcontain it and then determining the maximum y-value along thesegment(s). In this case, then, 508 can be understood to comprise thefollowing sub-steps:

-   -   (i) Finding the minimum and maximum y-value of the profile        (Y_(min) and Y_(max))    -   (ii) Defining Y_(lower)=Y_(min) (Y_(max) Y_(min))×0.10    -   (iii) Starting at the beginning of the contour, traversing        forwards along the contour to find the point that has a        y-value=Y_(lower). This point is identified as point C1 in FIG.        9A.    -   (iv) Starting at the end of the contour, traversing backwards        along the contour to find the point that has a        y-value=Y_(lower). This point is identified as point C2 in FIG.        9A.    -   (v) Starting from point C1, traversing forward on the contour to        point C2 to find the point with maximum y-value, identified in        FIG. 9A as CP1.

After applying similar analysis to locate the remaining control pointsC2 to C 17, the resulting distribution of control points is shown inFIG. 9B. Method 500 then proceeds to 510 where method 500 determines thelocation of measure lines, which connect the respective control pointsin FIG. 9B and thereafter, to 512, where method 500 determines thelocation of the control lines, indicated at CL₁ and CL₂ in FIG. 9B. Asimilar approach to that described above is taken to determine thecontrol points, measure lines, and control lines for other apparelarticles such, for example, as the simple, single contour T-shirtarticle depicted in FIG. 9C.

Following the determination of the scaled contour(s), location ofcontrol points, and the location and dimensions of the measure lines andcontrol lines, method 500 proceeds to 514 where method 500 stores aprofile for the article in association with a consumer identifier or anarticle identifier (e.g., a SKU″ number or other form of vendor identityor inventory code).

FIG. 6 is a flow diagram of a method 600 for automatically comparing theprofile associated with a well-fitting or well-suited article selectedby a consumer and the profile associated with one or apparel articlesbeing evaluated by an interested party, according to one or moreembodiments of the present disclosure. In an exemplary use case ofembodiments consistent with the present disclosure, a user createsprofiles based on the best fitting apparel articles he or she has andthen uses these profiles to match against public profiles of clothingitems which a vendor is selling via an e-commerce site. In alternate usecases, a vendor may wish to make targeted solicitations at one or moreconsumers whose respective profile(s) suggest(s) that a single,standardized article already in the vendor's inventory would suit suchconsumer(s). In the latter case, a particular consumer or group ofconsumers may have demonstrated, from prior purchases, a preference forthe style of product matching or consistent with the genres availablefrom the vendor.

In any event, and with continued reference to FIG. 6, it will be seenthat process 600 is entered at 602 and proceeds to 604, where method 600receives, at a server, a request to profile matching services or otherservices which require profile analysis. The method 600 then proceeds to606 where the requesting person or entity is authenticated to access oneor more profile(s). The profiles to which access is sought may, forexample, be associated with a particular user. Such profiles have beenreferred to herein as “target” profiles. In embodiments, a user mayeither access his or her own profiles as part of an online shoppingexperience or he or she may give access to friends or family members sothat they may purchase items for or on behalf of the user without havingto “guess” whether an item they purchase will be a good fit. Inaddition, the profiles to which access is sought may be associated withpublicly available (e.g., advertised or placed on sale via an e-commercesite). Such profiles are referred to herein as “public” profiles.

From 606, method 600 proceeds to 608 where a determination is made as towhether authentication was successful. If so, method 600 proceeds to610, but if not the method 600 proceeds to 626 and terminates. At 610, afurther determination is made as to whether an evaluation for articlematches or “fit” is to be performed by method 600, based on one or moretarget and one/or more public profiles for such articles. If therequester is a consumer or is shopping on behalf of a consumer for whoma profile is available, then method 600 proceeds from 610 to 612, wheremethod 600 receives a selection of at least one apparel article to serveas the basis for finding a match among other articles for which aprofile is available. The method 600 then proceeds to 614, where method600 retrieves a target profile of the requester. If the requester is ane-commerce retailer, then method 600 instead proceeds to 624, where arequest is processed to identify users having a target profileindicative of a good fit for an existing or proposed article having aspecified profile.

From 614, method 600 proceeds to 616, where method 600 retrieves oraccesses the public profile(s) of one or more article(s) to beevaluated. In some embodiments, the retrieval which occurs at 616proceeds based on selection(s) made by a consumer (or an authorizedperson shopping on behalf of the consumer) over the course of an onlineshopping experience. By way of example, a consumer may identify aplurality of apparel articles as candidates for purchase from a singlevendor, on the basis of price, style, availability, and other criteria.As an additional step, the user may subject these candidates toevaluation for fit consistent with embodiments of the presentdisclosure. By way of alternate example, a consumer may utilize a singleportal to review the offerings of a plurality of vendors. In yet otherembodiments, a user indicating that he or she is looking for apparelarticles of a particular category and type (e.g., category: SHIRTS andtype: T-shirts) may be presented with a display screen containing anumber of articles of that type with further screening according toprofile availability and profile compatibility (e.g., where theprofile(s) include dimensions that are within a range expected to beassociated with a good fit).

In each of the aforementioned cases, for each article selected as acandidate and for which a public profile is available, the publicprofile is retrieved at 616. From 616, method 600 proceeds to 618, wheremethod 600 initiates rendering—to the display of the display terminalbeing used by the user to access the profile matching functionality ofmethod 600—of a target profile contour as an overlay upon the publicprofile contour of a first selected apparel article. In an embodiment,an initial overlay is rendered by finding the centroid for each of atarget profile contours and a public profile contour and then aligningthese along a reference edge (e.g., the top edge) and horizontal (e.g.,x-coordinate in an x-y orthogonal coordinate system) of their respectivecentroids. An exemplary result is shown in FIG. 9D, where a fittingscore of 67 is derived from the area indicated at A_(T) (bounded by theovercover and undercover areas), where the undercover areas areidentified at areas UC₁, UC₂ and UC₃ and where the overcover areas areidentified at OC₁, OC₂, and OC₃.

FIG. 7 is a network message flow diagram depicting the exchange ofmessages, over a communication network, between a display terminalutilized to capture and/or submit an article image and a server whichprocesses the image to develop and/or utilize a profile based on thepresent disclosure. In the exemplary embodiment of FIG. 7, a user of adisplay terminal accesses a user interface which may be rendered to thedisplay thereof either by local execution of a stored application, orthrough a browser application connected to a server. In an embodiment, aprofile creation request is forwarded to a profile creation andmaintenance server as a transmit launch notification message. The serveracknowledges receipt of the message and initiates, via the browser (orinstructs a local application to initiate), display of an imagecontaining an apparel article for which a profile is to be created. Theimage may be as captured by the user using an image capture deviceassociated with the same display terminal, or as accessed via apreviously stored image file (e.g, as uploaded to the server). In anembodiment, the UI is operated to notify the server of an image captureoperation, whereupon the display terminal uploads the image file to theserver for image segmentation and contour delineation consistent withembodiments of the present disclosure.

Upon receiving an uploaded image file containing target article and,optionally, a scaling article of known dimension, the server transmitsan acknowledge message and data representative of the locations ofinitially determined foreground and/or background areas for updating ofthe display at the 1^(st) device user interface, The processor of thedisplay terminal executes instructions causing the display to be updatedso that one or more automatically generated foreground designations aresuperimposed upon the areas of a displayed image corresponding to theapparel article and, if present, the scaling article. Likewise, theprocessor of the display terminal executes instructions causing thedisplay to be updated so that one or more automatically backgrounddesignations are superimposed upon the areas of a displayed image notcorresponding to an apparel article or scaling article. Such initialdesignations are shown in FIG. 8A as previously described in connectionwith FIG. 4 above. If the user responds to a displayed instruction orprompt to enter additional background or foreground designations, or toremove any such designations, then these are input via the userinterface and transmitted as updates to the server, which acknowledgesreceipt of the updates and, following processing of these updates, theserver transmits information confirming the position of the user-enteredsupplemental updates. The resulting view, as seen at the user interfaceof the display terminal, is shown in FIG. 8B as previously described inconnection with FIG. 4 above.

Once the user of the display terminal manifests acceptance of thebackground and foreground designations, that acceptance is transmittedto the server which, in turn, generates a contoured grayscale image thatseparately encapsulates each respective article (e.g., an apparelarticle and a scaling article, if present). Data corresponding to thisgrayscale image is sent to the display terminal, which refreshes theuser interface accordingly with the resulting view as shown in FIG. 8C.

The user's acceptance of the delineated contoured image is entered viathe user interface of the display device and, thereafter, transmitted tothe server which then saves this as part of a scaled, dimensionallyaccurate profile generated for the article. Consistent with embodimentsdescribed previously, the profile further contain measure lines and oneor more feature dimensions for use in match filtering processes. Theserver transmits a message to the display terminal acknowledging receiptof the acceptance and, if no further profiles are to be generated, auser-entered instruction to terminate the invocation of profilegeneration functionality is processed by the display terminal andtransmitted to the server.

The embodiments of the present invention may be embodied as methods,apparatus, electronic devices, and/or computer program products.Accordingly, the embodiments of the present invention may be embodied inhardware and/or in software (including firmware, resident software,micro-code, and the like), which may be generally referred to herein asa “circuit” or “module”. Furthermore, the present invention may take theform of a computer program product on a computer-usable orcomputer-readable storage medium having computer-usable orcomputer-readable program code embodied in the medium for use by or inconnection with an instruction execution system. In the context of thisdocument, a computer-usable or computer-readable medium may be anymedium that can contain, store, communicate, propagate, or transport theprogram for use by or in connection with the instruction executionsystem, apparatus, or device. These computer program instructions mayalso be stored in a computer-usable or computer-readable memory that maydirect a computer or other programmable data processing apparatus tofunction in a particular manner, such that the instructions stored inthe computer usable or computer-readable memory produce an article ofmanufacture including instructions that implement the function specifiedin the flowchart and/or block diagram block or blocks.

The computer-usable or computer-readable medium may be, for example butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus or device. More specificexamples (a list) of the computer-readable medium include the following:hard disks, optical storage devices, magnetic storage devices, anelectrical connection having one or more wires, a portable computerdiskette, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, and a compact disc read-only memory (CD-ROM).

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language,such as Java®, Smalltalk or C++, and the like. However, the computerprogram code for carrying out operations of the present invention mayalso be written in conventional procedural programming languages, suchas the “C” programming language and/or any other lower level assemblerlanguages. It will be further appreciated that the functionality of anyor all of the program modules may also be implemented using discretehardware components, one or more Application Specific IntegratedCircuits (ASICs), or programmed Digital Signal Processors ormicrocontrollers.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the present disclosure and its practical applications, tothereby enable others skilled in the art to best utilize the inventionand various embodiments with various modifications as may be suited tothe particular use contemplated.

Various embodiments of method and apparatus for creating and matchingapparel article profiles on behalf of consumers and/or vendors orprospective vendors of apparel articles, as performed by one or moreservers and client devices, as described herein, may be executed on oneor more computer systems, which may interact with various other devices.One such embodiment of a computer system is computer system 1000illustrated by FIG. 10, which may in various embodiments implement anyof the elements or functionality illustrated in FIGS. 1-9D. In variousembodiments, computer system 1000 may be configured to implement methodsdescribed above. The computer system 1000 may be used to implement anyother system, device, element, functionality or method of theabove-described embodiments. In the illustrated embodiments, computersystem 1000 may be configured to implement method 200 (FIG. 2), method300 (FIG. 3), method 400 (FIG. 4), method 500 (FIG. 5), and/or method600 (FIG. 6) as processor-executable executable program instructions1022 (e.g., program instructions executable by processor(s) 1010) invarious embodiments

In the illustrated embodiment, computer system 1000 includes one or moreprocessors 1010 a-1010 n coupled to a system memory 1020 via aninput/output (I/O) interface 1030. Computer system 1000 further includesa network interface 1040 coupled to I/O interface 1030, and one or moreinput/output devices 1050, such as cursor control device 1060, keyboard1070, and display(s) 1080. In various embodiments, any of the componentsmay be utilized by the system to receive user input described above. Invarious embodiments, a user interface may be generated and displayed ondisplay 1080. In some cases, it is contemplated that embodiments may beimplemented using a single instance of computer system 1000, while inother embodiments multiple such systems, or multiple nodes making upcomputer system 1000, may be configured to host different portions orinstances of various embodiments. For example, in one embodiment someelements may be implemented via one or more nodes of computer system1000 that are distinct from those nodes implementing other elements. Inanother example, multiple nodes may implement computer system 1000 in adistributed manner.

In different embodiments, computer system 1000 may be any of varioustypes of devices, including, but not limited to, a personal computersystem, desktop computer, laptop, notebook, or netbook computer,mainframe computer system, handheld computer, workstation, networkcomputer, a set top box, a mobile device such as a smartphone or PDA, aconsumer device, video game console, handheld video game device,application server, storage device, a peripheral device such as aswitch, modem, router, or in general any type of computing or electronicdevice.

In various embodiments, computer system 1000 may be a uniprocessorsystem including one processor 1010, or a multiprocessor systemincluding several processors 1010 (e.g., two, four, eight, or anothersuitable number). Processors 1010 may be any suitable processor capableof executing instructions. For example, in various embodimentsprocessors 1010 may be general-purpose or embedded processorsimplementing any of a variety of instruction set architectures (ISAs).In multiprocessor systems, each of processors 1010 may commonly, but notnecessarily, implement the same ISA.

System memory 9100 may be configured to store program instructions 1022and/or data 1032 accessible by processor 1010. In various embodiments,system memory 1020 may be implemented using any suitable memorytechnology, such as static random access memory (SRAM), synchronousdynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type ofmemory. In the illustrated embodiment, program instructions and dataimplementing any of the elements of the embodiments described above maybe stored within system memory 1020. In other embodiments, programinstructions and/or data may be received, sent or stored upon differenttypes of computer-accessible media or on similar media separate fromsystem memory 1020 or computer system 1000.

In various embodiments, computer system 1000 may be a uniprocessorsystem including one processor 1010, or a multiprocessor systemincluding several processors 1010 (e.g., two, four, eight, or anothersuitable number). Processors 1010 may be any suitable processor capableof executing instructions. For example, in various embodimentsprocessors 1010 may be general-purpose or embedded processorsimplementing any of a variety of instruction set architectures (ISAs).In multiprocessor systems, each of processors 1010 may commonly, but notnecessarily, implement the same ISA.

System memory 1020 may be configured to store program instructions 1022and/or data 1032 accessible by processor 1010. In various embodiments,system memory 1020 may be implemented using any suitable memorytechnology, such as static random access memory (SRAM), synchronousdynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type ofmemory. In the illustrated embodiment, program instructions and dataimplementing any of the elements of the embodiments described above maybe stored within system memory 1020. In other embodiments, programinstructions and/or data may be received, sent or stored upon differenttypes of computer-accessible media or on similar media separate fromsystem memory 1020 or computer system 1000.

In one embodiment, I/O interface 1030 may be configured to coordinateI/O traffic between processor 1010, system memory 1020, and anyperipheral devices in the device, including network interface 1040 orother peripheral interfaces, such as input/output devices 1050. In someembodiments, I/O interface 1030 may perform any necessary protocol,timing or other data transformations to convert data signals from onecomponent (e.g., system memory 1020) into a format suitable for use byanother component (e.g., processor 1010). In some embodiments, I/Ointerface 1030 may include support for devices attached through varioustypes of peripheral buses, such as a variant of the Peripheral ComponentInterconnect (PCI) bus standard or the Universal Serial Bus (USB)standard, for example. In some embodiments, the function of I/Ointerface 1030 may be split into two or more separate components, suchas a north bridge and a south bridge, for example. Also, in someembodiments some or all of the functionality of I/O interface 1030, suchas an interface to system memory 1020, may be incorporated directly intoprocessor 1010.

Network interface 1040 may be configured to allow data to be exchangedbetween computer system 1000 and other devices attached to a network(e.g., network 1090), such as one or more display devices (not shown),or one or more external systems or between nodes of computer system1000. In various embodiments, network 1090 may include one or morenetworks including but not limited to Local Area Networks (LANs) (e.g.,an Ethernet or corporate network), Wide Area Networks (WANs) (e.g., theInternet), wireless data networks, some other electronic data network,or some combination thereof. In various embodiments, network interface1040 may support communication via wired or wireless general datanetworks, such as any suitable type of Ethernet network, for example;via telecommunications/telephony networks such as analog voice networksor digital fiber communications networks; via storage area networks suchas Fiber Channel SANs, or via any other suitable type of network and/orprotocol.

Input/output devices 1050 may, in some embodiments, include one or moredisplay terminals, keyboards, keypads, touchpads, scanning devices,voice or optical recognition devices, or any other devices suitable forentering or accessing data by one or more computer systems 1000.Multiple input/output devices 1050 may be present in computer system1000 or may be distributed on various nodes of computer system 1000. Insome embodiments, similar input/output devices may be separate fromcomputer system 1000 and may interact with one or more nodes of computersystem 1000 through a wired or wireless connection, such as over networkinterface 1040.

In some embodiments, the illustrated computer system may implement anyof the methods described above, such as the methods illustrated by theflowcharts of FIGS. 2-6. In other embodiments, different elements anddata may be included.

Those skilled in the art will appreciate that computer system 1000 ismerely illustrative and is not intended to limit the scope ofembodiments. In particular, the computer system and devices may includeany combination of hardware or software that can perform the indicatedfunctions of various embodiments, including computers, network devices,Internet appliances, PDAs, wireless phones, pagers, and the like.Computer system 1000 may also be connected to other devices that are notillustrated, or instead may operate as a stand-alone system. Inaddition, the functionality provided by the illustrated components mayin some embodiments be combined in fewer components or distributed inadditional components. Similarly, in some embodiments, the functionalityof some of the illustrated components may not be provided and/or otheradditional functionality may be available.

Those skilled in the art will also appreciate that, while various itemsare illustrated as being stored in memory or on storage while beingused, these items or portions of them may be transferred between memoryand other storage devices for purposes of memory management and dataintegrity. Alternatively, in other embodiments some or all of thesoftware components may execute in memory on another device andcommunicate with the illustrated computer system via inter-computercommunication. Some or all of the system components or data structuresmay also be stored (e.g., as instructions or structured data) on acomputer-accessible medium or a portable article to be read by anappropriate drive, various examples of which are described above. Insome embodiments, instructions stored on a computer-accessible mediumseparate from computer system 1000 may be transmitted to computer system1000 via transmission media or signals such as electrical,electromagnetic, or digital signals, conveyed via a communication mediumsuch as a network and/or a wireless link. Various embodiments mayfurther include receiving, sending or storing instructions and/or dataimplemented in accordance with the foregoing description upon acomputer-accessible medium or via a communication medium. In general, acomputer-accessible medium may include a storage medium or memory mediumsuch as magnetic or optical media, e.g., disk or DVD/CD-ROM, volatile ornon-volatile media such as RAM (e.g., SDRAM, DDR, RDRAM, SRAM, and thelike), ROM, and the like.

The methods described herein may be implemented in software, hardware,or a combination thereof, in different embodiments. In addition, theorder of methods may be changed, and various elements may be added,reordered, combined, omitted or otherwise modified. All examplesdescribed herein are presented in a non-limiting manner. Variousmodifications and changes may be made as would be obvious to a personskilled in the art having benefit of this disclosure. Realizations inaccordance with embodiments have been described in the context ofparticular embodiments. These embodiments are meant to be illustrativeand not limiting. Many variations, modifications, additions, andimprovements are possible. Accordingly, plural instances may be providedfor components described herein as a single instance. Boundaries betweenvarious components, operations and data stores are somewhat arbitrary,and particular operations are illustrated in the context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within the scope of claims that follow. Finally,structures and functionality presented as discrete components in theexample configurations may be implemented as a combined structure orcomponent. These and other variations, modifications, additions, andimprovements may fall within the scope of embodiments as defined in theclaims that follow.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A method enabling evaluation of the prospectivefit of an article, the method being executed on a computer including atleast one processor and a memory containing instructions that, whenexecuted by the at least one processor, cause the computer to performthe steps of: one of receiving or retrieving image data acquired from animage capture device and representative of at least one of an articleimage having at least one feature of locally known dimension or anarticle image of locally unknown dimension together with a scalingarticle image having at least one known dimension; partitioning theimage data to form groups of pixels according to at least one of pixellocation, color, intensity, or texture, wherein at least one of thegroups of pixels formed by the partitioning corresponds to an articlerepresented by the received or retrieved image data and wherein at leastone of the groups of pixels formed by the partitioning corresponds to abackground area of the received or retrieved image data; determiningtwo-dimensional mathematical curves, corresponding to contours of anarticle represented by a group of pixels formed by the partitioning, toobtain at least one pixel dimension for each article; relating the atleast one pixel dimension to the at least one known dimension to obtaintrue dimensions for the at least one pixel dimension; generating aprofile based on the obtained true dimensions; and storing the profilein a memory of a server.
 2. The method of claim 1, wherein the receivedor retrieved image data includes a user designation identifying at leastone of a group of pixels corresponding to an article represented by thereceived or retrieved image data or a group of pixels corresponding to abackground area of the received or retrieved image data.
 3. The methodof claim 2, further including removing pixels belonging to any group ofpixels corresponding to a background area and generating a grayscaleimage for each article image.
 4. The method of claim 3, wherein thedetermining further includes initiating from a server, by execution ofinstructions of a processor, rendering of at least one greyscale imageto a display of a remote display terminal.
 5. The method of claim 4,further including receiving further designations of at least one ofbackground or foreground areas entered at the remote display terminal.6. The method of claim 1, wherein the relating includes combiningcontours from multiple article images.
 7. The method of claim 1, whereinthe relating includes scaling curves of article image contours byreference to a scaling article or to known dimensions of a representedarticle.
 8. The method of claim 7, wherein the profile generatingincludes determining a plurality of control points along scaled curvesof an image contour.
 9. The method of claim 8, wherein the profilegenerating includes determining at least one measure line, each measureline connecting a pair of control points.
 10. The method of claim 8,wherein the profile generating further includes determining at least onecontrol line.
 11. The method of claim 10, wherein the storing comprisesstoring a profile comprising at least one of control point locations,measure line dimensions, control line locations, or control linedimensions in association with a unique consumer identifier or anarticle identifier.
 12. The method of claim 1, further includingreceiving, at a server, a request to evaluate an article of clothing forfit, computing at least one matching score between a profile of anarticle of clothing associated with a user and at least one profile of acommercially available article; and initiating display of the at leastone matching score, or of a recommendation based on the matching score,to a display of a remote display terminal.
 13. The method of claim 1,wherein each article image is representative of a flat article ofclothing.
 14. The method of claim 1, further including evaluatingsuitability of an article for a consumer by reference to a targetarticle profile obtained by the steps of generating and storing, themethod being executed by a computer including at least one processor anda memory containing instructions that, when executed by the at least oneprocessor, cause the computer to perform the steps of: retrieving astored article profile associated with one of a consumer or acommercially available article; and determining a corresponding matchingscore between the target profile and an article associated with theconsumer.
 15. The method of claim 14, further including receiving, atthe server, a request for profile analysis from a requester, andauthenticating the requester, and/or initiating rendering of a consumerprofile image upon a public profile image to a display of a remotedisplay terminal.
 16. The method of claim 14, further includinginitiating rendering of at least one of the matching score or arecommendation to a remote display terminal associated with a requester,and/or receiving, at the server, a request to identify consumers havinga Profile indicative of a good fit for an article having a specifiedprofile.
 17. The method of claim 14, wherein the target profile is aprofile for an article associated with a consumer, and wherein theretrieving comprises retrieving the at least one public profile.
 18. Themethod of claim 14, wherein the target profile is a public profile, andwherein the retrieving comprises retrieving a profile for an articleassociated with a consumer.